#ifndef __MAIN_H
#define __MAIN_H

#define COMMANDUSAGE \
    "用法: %s [子命令] [选项[, 参数]]...\n\n" \
    "可用的子命令:\n" \
    "   [pack]\t将文件或目录打包为<.fp>文件。\n" \
    "   [fake]\t将文件或目录打包并伪装为JPEG文件。\n" \
    "   [extr]\t从<.fp>文件或伪装的JPEG文件中提取目录或文件。\n" \
    "   [info]\t显示<.fp>文件信息及其子文件列表。\n" \
    "   [help]\t\t显示此帮助信息。\n" \
    "   [vers]\t\t显示程序版本信息及其他信息。\n\n" \
\
    "子命令的选项:\n" \
    "   [info]命令选项:\n" \
    "       [-p] 文件路径\t要从中读取并显示子文件/目录列表及其他信息的<.fp>文件路径。\n\n" \
\
    "   [pack]命令选项:\n" \
    "       [-p] 文件路径\t即将生成的<.fp>文件的路径。路径应包括文件名和扩展名，文件名扩展名虽不影响打包和解包，但还是建议使用'.fp'作为扩展名。\n" \
    "       [-t] 路径\t即将被打包的目标。该目标将被打包到[-p]选项指定的<.fp>文件中。此选项可以指定文件或目录路径。\n" \
    "       [-s]\t\t如果使用了此选项，并且[-t]选项指定的是一个目录，则打包时搜索该目录的后代目录，如果[-t]选项指定的是文件则此选项不生效。不使用此选项则不搜索子目录。\n" \
    "       [-a]\t\t指定打包模式为追加打包。如果[-p]选项指定的<.fp>文件已存在且使用了此选项，则把要打包的目标追加打包到已存在的<.fp>文件中，不使用此选项则直接退出。[-p]选项指定的<.fp>文件不存在则此选项不生效。\n\n" \
\
    "   [fake]命令选项:\n" \
    "       [-p] 文件路径\t即将生成的伪装成JPEG文件的<.fp>文件路径，路径应包括文件名，文件名扩展名虽不影响打包，但建议以'.jpg'或'.jpeg'作为扩展名，这样生成的文件表面看起来就是正常的JPEG文件。\n" \
    "       [-j] 文件路径\t要伪装成的JPEG文件的路径。此路径的JPEG文件不会被修改，程序只读取并使用其副本。此路径指定的文件需是真正的JPEG文件，更改其他格式文件的扩展名为<.jpg>或<.jpeg>是无效的。\n" \
    "       [-t] 路径\t即将被打包的目标。该目标将被打包到[-p]选项指定的<.fp>文件中。此选项可以指定文件或目录路径。\n" \
    "       [-s]\t\t如果[-t]选项指定的是一个目录，则打包时将搜索该目录的后代目录，如果[-t]选项指定的是文件则此选项不生效。不使用此选项则不搜索子目录。\n" \
    "       [-a]\t\t指定打包模式为追加打包。如果[-p]选项指定的<.fp>文件已存在且使用了此选项，则把要打包的目标追加打包到已存在的<.fp>文件中，不使用此选项则直接退出。[-p]选项指定的<.fp>文件不存在则此选项不生效。\n\n" \
\
    "   [extr]命令选项:\n" \
    "       [-p] 文件路径\t要解包的<.fp>文件的路径，程序将从此路径指示的<.fp>文件中提取子文件或目录。\n" \
    "       [-t] 目录路径\t此选项指定提取<.fp>文件中的子文件时子文件的保存路径，忽略此选项则将提取的子文件保存到当前目录。\n" \
    "       [-n] 文件名\t想要从[-p]选项指定的<.fp>文件中提取的子文件或目录的名称。注意，这里<文件名>指的是使用info命令列出的<.fp>文件的子文件名，不使用此选项则提取<.fp>文件的全部子文件。\n" \
    "       [-o]\t\t如果使用了此选项，则提取子文件时如果[-t]选项指定的目录中已存在同名子文件则直接覆盖，不使用此选项则不提取该子文件。\n\n"

#endif // __MAIN_H
